#include "Condition.hpp"
#include "MutexLock.hpp"

#include <cstddef>
#include <iostream>
#include <pthread.h>

using std::cout;
using std::endl;

namespace wd{

Condition::Condition(MutexLock & mutex)
:_mutex(mutex)
{
    pthread_cond_init(&_cond,NULL);
}

Condition::~Condition(){
    pthread_cond_destroy(&_cond);
}



void Condition::wait(){
    pthread_cond_wait(&_cond,_mutex.getMutexPtr());
}
void Condition::notify_one(){
    pthread_cond_signal(&_cond);
}
void Condition::notify_all(){
    pthread_cond_broadcast(&_cond);
}


}

